草庐IT

MySQL ORDER BY 多列 ASC 和 DESC

全部标签

mysql - 按多列选择不同的行并检索未参与确定独特性的另一列

下面是我如何通过组合多列(a、b和c)来选择不同的行:selectdistincta,b,cfrommy_table这很好,但我还需要为这些行(d)检索另一列,我无法将其添加到选择部分,因为它也会在确定我不想要的行唯一性方面发挥作用。如何在不影响行唯一性的情况下检索额外的列? 最佳答案 您可以使用分组依据来执行此操作。在MySQL中,您可以:selecta,b,c,dfrommy_tablegroupbya,b,c这为“d”选择了一个任意值,它通常(但不是保证!)是遇到的第一个值。这使用了MySQL的一项称为隐藏列的功能。对于在My

MySQL 在多列上选择 WITH "OR"时速度慢

我有一个大约有300万行的表。当我使用这个查询来选择时:SELECTorder_code,store_debit,total_priceFROMordersWHERE4624603IN(id,pid)AND`status`=-6;或此查询(使用OR)SELECTorder_code,store_debit,total_priceFROMordersWHERE(id=4624603ORpid=4624603)AND`status`=-6;那一个花了>17秒。但是当我把它分成两个查询时:SELECTorder_code,store_debit,total_priceFROMordersWH

PHP MySQL 将用户表加入多列和多行

我在加入我正在从事的项目中的表时遇到了一些问题。我有3张表,一张用于项目,一张用于客户,一张用于用户。我正在尝试将Customers和Users的ID存储在Projects表中,并在检索时加入它们。+----+--------------+|ID|CustomerName|+----+--------------+|1|Customer1||2|Customer2||3|Customer3|+----+--------------++----+-----------+----------+|ID|FirstName|LastName|+----+-----------+--------

Mysql:多列索引,多列索引的顺序重要吗?

我正在尝试理解多列索引。问题是:多列索引的顺序重要吗?我有一个包含A、B、C和D列的表格。我执行一个查询:SELECTAFROMtableWHERED='2'ANDB='1'ANDC='0';如果我只创建一个多列索引,速度会有差异吗:乙、丙、丁D、B、C或者多列索引的顺序无关紧要?补充问题:如果我执行以下查询,它是否仍然受益于多列索引?SELECTA,BFROMtablenameWHERED='2'ANDC='0';为什么(不)? 最佳答案 多列索引的顺序无关紧要。换句话说,以下两个查询是相同的:SELECTAFROMtableWH

php - mySQL:将一列的结果作为多列返回

第一次在这里提问,如果格式不正确,敬请谅解。我正在尝试从多个表中提取一些信息以构建报告。所述表格来自Magento实例,以防有帮助。所以,我有四个正在使用的表:customer_entity、customer_address_entity、customer_address_entity_text和customer_address_var_char在customer_entity中,我需要获取三个字段:entity_id、email和group_id在customer_address_entity中,我需要获取parent_id(等于上面的entity_id)和entity_id(与上面

PHP + PDO 在多列搜索时分页

尝试在数据库搜索中进行php分页时出现语法错误。我做错了什么?功能:publicfunctionsearchItem1($search,$page){$limit='5';$start=($page*$limit)-5;echo$start;$where=array();$words=preg_split('/[\s]+/',$search);array_unshift($words,'');unset($words[0]);$sqlstring=implode("OR",array_fill(0,count($words),"itemnameLIKE?"));$sql="SELECT

MySQL 跨多列排名

我们有一个包含以下数据的MySQL表(结果)|nid|uid|score|duration在这张表中,我们有来自多个测验的结果,我们需要提出一个查询,为我们提供每个测验的用户排名输出。排名必须基于最高分到最低分,如果分数与最低持续时间和最高持续时间持平。我们目前有这个查询:SELECTnid,uid,score,duration,rankFROM(SELECTnid,uid,score,duration,@curRank:=IF(@prevRank=score+duration,@curRank,@incRank)ASrank,@incRank:=@incRank+1,@prevRan

MySQL 多列唯一键

我熟悉的语法在'some_table'('col1','col2')上创建唯一索引'blah'但是我不确定这将如何表现。更具体地说,文档说Acolumnlistoftheform(col1,col2,...)createsamultiple-columnindex.Indexvaluesareformedbyconcatenatingthevaluesofthegivencolumns.在某些情况下这似乎没问题,但我想制作一个只包含唯一数字的表格。所以,我可以看到col1为12,col2为2,据我所知,这将连接到122,然后col11和col222的值将匹配它,这不是我想要的。有没有办

php - 按 DESC/ASC 排序在 PHP 查询中不起作用

到目前为止,我的这段代码在2个while循环内:mysql_query("SELECT*FROMlistingWHERE(category_id='$category'ORcategory_id_2='$category'ORcategory_id_3='$category')ANDlisting_status='1'ANDlisting_type='1'ANDlisting_id='$listing_id'ORDERBYoverallDESC");数据显示的正是我想要的,但是ORDERBY根本不起作用。我不太确定它是按什么顺序订购的。整个列本身是DECIMAL(12,2)。这些值仅保

mysql - 左连接对多列性能的影响?

假设我有2个表:table1:(20.000records)idcode1code2somethingstatustable2:(7.500records)idcode1code2name我想要的只是使用此查询列出表1中具有表2中“名称”的所有记录:SELECTDISTINCT`tb1`.*,`tb2`.`name`FROM`table1`AS`tb1`LEFTJOIN`table2`AS`tb2`ON(tb1.code1=tb2.code1ANDtb1.code2=tb2.code2)WHERE(tb1.status=1)但是我检索数据的时间太长了(5分钟后我仍然看不到结果)。执行此